<script setup>
import { storeToRefs } from 'pinia';
const dayjs = useDayjs()

const urlHome = useUrl();

const props = defineProps({
    mpp: Number,
    fio: String,
    year: Number,
    month: Number,
    lgot: String,
    dn: String,
    dk: String,
    lab_pdzr_tech: Array,
    usl_pdzr_tech: Array,
    lab_dzr: Array,
    usl_dzr: Array,
    get_nar_usl: Function,
    specList: Object,
    profile: Number,
})

const pend = ref(false);
const mpp2 = useCookie('mpp');

async function finishNaryad(nkv_string) {
    const response = await $fetch(`${urlHome.value}lab/finish_naryad/`, {
        // method: 'POST',
        // body: {

        // }
        query: {
            nkv: nkv_string,
            year: props.year,
            month: props.month,
            profile: props.profile,
            mpp: mpp2.value,
        }
    })
    if (response.ok) {
        props.get_nar_usl()
    }
}

</script>

<template>
    <div v-show="(lab_pdzr_tech.length + usl_pdzr_tech.length + lab_dzr.length + usl_dzr.length) > 0">
        <details class="card">
            <summary class="card-header">
                <div v-show="(lab_pdzr_tech.length + usl_pdzr_tech.length + lab_dzr.length + usl_dzr.length) > 0"
                    class="text-2xl font-medium border-double border-4 border-grey-400">
                    <div class="flex gap-2 max-w-fit">
                        <div
                            v-if="lab_dzr.length + usl_dzr.length > 0 && + lab_pdzr_tech.length + usl_pdzr_tech.length === 0">
                            ✅
                        </div>
                        <div v-else>
                            ⚠️
                        </div>

                        <div><b>{{ fio }}</b></div>


                    </div>
                    <div class="grid grid-cols-3 gap-4 max-w-fit">
                        <div>нарядов: <b>{{ lab_pdzr_tech.length + usl_pdzr_tech.length +
                            lab_dzr.length + usl_dzr.length }}</b>
                        </div>
                        <div class="col-span-2">на сумму: <b>{{ Number((lab_pdzr_tech.reduce((s, x) => s + x.stu, 0) +
                            usl_pdzr_tech.reduce((s, x) => s + x.stu, 0) + lab_dzr.reduce((s, x) => s +
                                x.stu, 0)
                            +
                            usl_dzr.reduce((s, x) => s + x.stu, 0)).toFixed(2)).toLocaleString() }}
                            </b>
                            руб.
                        </div>
                    </div>
                    <div class="text-xl">Закрыто нарядов с участием лаборатории: <b>{{ lab_pdzr_tech.length +
                        lab_dzr.length }}</b> на сумму <b>{{
                                Number(((lab_pdzr_tech.reduce((s, x) => s + x.stu, 0)) +
                                    (lab_dzr.reduce((s, x) => s + x.stu, 0))).toFixed(2)).toLocaleString() }}</b> руб.
                    </div>

                    <div v-if="lab_pdzr_tech.length + usl_pdzr_tech.length > 0">Наряды для проверки старшими техниками:
                        {{
                            lab_pdzr_tech.length + usl_pdzr_tech.length }} на
                        сумму <b>{{ Number(((lab_pdzr_tech.reduce((s, x) => s + x.stu, 0)) + (usl_pdzr_tech.reduce((s,
                            x) =>
                            s +
                            x.stu, 0))).toFixed(2)).toLocaleString() }}</b> руб.</div>
                    <div v-if="lab_dzr.length + usl_dzr.length > 0">Закрытые наряды: <b>{{
                        lab_dzr.length +
                        usl_dzr.length }}</b> на <b>{{ Number((lab_dzr.reduce((s, x) => s + x.stu, 0)
                                +
                                usl_dzr.reduce((s, x) => s + x.stu, 0)).toFixed(2)).toLocaleString()
                            }}</b>
                        руб.
                    </div>
                </div>
            </summary>
            <div v-if="(lab_pdzr_tech.length + usl_pdzr_tech.length + lab_dzr.length + usl_dzr.length) > 0"
                class=" border-double border-4">

                <div v-if="lab_pdzr_tech.length + usl_pdzr_tech.length > 0"
                    class="text-2xl font-semibold text-purple-800 drop-shadow-md shadow-black-600">Наряды
                    для проверки старшими техниками: {{
                        lab_pdzr_tech.length + usl_pdzr_tech.length }} на
                    сумму <b>{{ Number(((lab_pdzr_tech.reduce((s, x) => s + x.stu, 0)) + (usl_pdzr_tech.reduce((s, x) =>
                        s +
                        x.stu, 0))).toFixed(2)).toLocaleString() }}</b> руб.</div>
                <div v-auto-animate>
                    <div v-for="nar in lab_pdzr_tech" :key="nar.nkv"
                        class="my-2 py-1 px-1 text-xs border-dotted border-2 border-indigo-600">
                        <div>
                            Наряд: <b>{{ nar.nkv }}</b>, Сумма: <b>{{ Number(nar.stu.toFixed(2)).toLocaleString() }}
                                руб.</b>,
                            Дата
                            наряда: {{ dayjs(nar.dou).format('DD.MM.YYYY') }}, Дата закрытия: {{
                                dayjs(nar.pdzr).format('DD.MM.YYYY')
                            }},
                            Пациент: <b>{{ nar.patient__fam }} {{ nar.patient__im }} {{ nar.patient__ot }}</b>
                        </div>
                        <StNaryad :nkv="nar.nkv" :specList="specList" :naryad_id="nar.id" :get_nar_usl="get_nar_usl"
                            :year="props.year" :month="props.month" :profile="profile" :mpp2="mpp2" />
                    </div>
                </div>
                <div v-if="usl_pdzr_tech.length > 0" class="relative flex py-5 items-center">
                    <div class="flex-grow border-t border-gray-950"></div>
                    <span class="flex-shrink mx-4 text-gray-950">Без лаборатории</span>
                    <div class="flex-grow border-t border-gray-950"></div>
                </div>
                <div v-auto-animate>
                    <div v-for="usl in usl_pdzr_tech" :key="usl.nkv">
                        <UButton size="2xs" label="Верно" @click="finishNaryad(usl.nkv)" />
                        Наряд: <b>{{ usl.nkv }}</b>, Сумма: <b>{{ Number(usl.stu.toFixed(2)).toLocaleString() }}
                            руб.</b>,
                        Дата
                        наряда: {{ dayjs(usl.dou).format('DD.MM.YYYY') }}, Дата закрытия: {{
                            dayjs(usl.pdzr).format('DD.MM.YYYY')
                        }},
                        Пациент: <b>{{ usl.patient__fam }} {{ usl.patient__im }} {{ usl.patient__ot }}</b>
                    </div>
                </div>
                <div v-if="lab_dzr.length + usl_dzr.length > 0"
                    class="text-2xl font-semibold text-emerald-600 drop-shadow-md shadow-black-600">Закрытые
                    наряды: {{ lab_dzr.length +
                        usl_dzr.length }} на <b>
                        {{ Number(((lab_dzr.reduce((s, x) => s + x.stu, 0)) +
                            (usl_dzr.reduce((s, x) => s + x.stu, 0))).toFixed(2)).toLocaleString() }}</b> руб.
                </div>
                <div v-auto-animate>
                    <div v-for="nar in lab_dzr" :key="nar.nkv">
                        Наряд: <b>{{ nar.nkv }}</b>, Сумма: <b>{{ Number(nar.stu.toFixed(2)).toLocaleString() }}
                            руб.</b>,
                        Дата
                        наряда: {{ dayjs(nar.dou).format('DD.MM.YYYY') }}, Дата закрытия: {{
                            dayjs(nar.pdzr).format('DD.MM.YYYY')
                        }},
                        Пациент: <b>{{ nar.patient__fam }} {{ nar.patient__im }} {{ nar.patient__ot }}</b>
                    </div>
                </div>
                <div v-if="usl_dzr.length > 0" class="relative flex py-5 items-center">
                    <div class="flex-grow border-t border-gray-950"></div>
                    <span class="flex-shrink mx-4 text-gray-950">Без лаборатории</span>
                    <div class="flex-grow border-t border-gray-950"></div>
                </div>

                <div v-auto-animate>
                    <div v-for="usl in usl_dzr" :key="usl.nkv">
                        Наряд: <b>{{ usl.nkv }}</b>, Сумма: <b>{{ Number(usl.stu.toFixed(2)).toLocaleString() }}
                            руб.</b>,
                        Дата
                        наряда: {{ dayjs(usl.dou).format('DD.MM.YYYY') }}, Дата закрытия: {{
                            dayjs(usl.pdzr).format('DD.MM.YYYY')
                        }},
                        Пациент: <b>{{ usl.patient__fam }} {{ usl.patient__im }} {{ usl.patient__ot }}</b>
                    </div>
                </div>
            </div>
        </details>
    </div>
</template>